package com.zpark.interceptor;

import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

/**
 * 自定义拦截器
 */
public class UserInterceptor implements HandlerInterceptor {
    /**
     * 拦截规则方法
     */
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        /**
         * 问题描述：
         *      如果用户没有登录，则不允许访问登录意外的其他资源
         * 在以往的学习过程中，登录信息存放在session当中
         */
        // 获取session对象
        HttpSession session = request.getSession();
        // 从session当中获取用户登录信息
        Object user = session.getAttribute("User");  // User不是固定的
        // 判断是否获取到用户表信息
        if (user == null) {
            // 没有用户登录信息，拦截请求，不允许访问资源，重定向到登录页面
            response.sendRedirect("http://localhost:8080/main.html");
            return false;
        }
        // 不拦截，放行
        return true;
    }

}
